The Institute of Electrical and Electronics Engineers (IEEE) has produced a standard for floating-point (i.e., exponential) arithmetic. This standard specifies how single precision (32-bit) and double precision (64-bit) floating-point numbers are to be represented, as well as how arithmetic should be carried out on these numbers.
The IEEE single precision floating-point standard representation requires a 32-bit word, which may be represented as numbered from 0 to 31, left to right. The first bit is the sign bit, S, the next eight bits are exponent bits, E, and the final 23 bits are the fraction, F.
The value, V, represented by the word may be determined as follows:
If E=255 and F is nonzero, then V=NaN (“Not a number”)
If E=255 and F is zero and S is 1, then V=−Infinity
If E=255 and F is zero and S is 0, then V=Infinity
If 0<E<255 then V=(−1)**S * 2 **(E−127)*(1.F), where “1.F” is intended to represent the binary number created by prefixing F with an implicit leading 1 and a binary point.
If E=0 and F is nonzero, then V=(−1)**S*2**(−126)*(0.F), which are un-normalized values.
If E=0 and F is zero and S is 1, then V=−0
If E=0 and F is zero and S is 0, then V=0.
The IEEE double precision floating-point standard representation requires a 64-bit word, which is numbered 0 to 63, left to right. The first bit is the sign bit, S, the next eleven bits are the exponent bits, E, and the final 52 bits are the fraction F. The value of each number is determined using a scheme consistent with the 32-bit scheme outlined above.
This floating-point notation is relatively data intensive. Therefore, passing and processing such data can be expensive, particularly, in high bandwidth applications, such as graphics processing. In graphics processing environments, the precision afforded by standard exponential notation (i.e., 32-bit or 64-bit) is frequently excessive. In other words, the precision afforded by standard exponential notation does not meaningfully improve the resultant graphics output.
There is a large embedded base of graphics computational systems that rely upon standard exponential notation. In addition, future graphics computational systems are designed to support standard exponential notation.
In view of the foregoing, it would be highly desirable to develop a technique that is operative in a standard exponential notation computation environment, but afforded enhanced data transport and computation operations through use of a non-standard exponential data format.